"""Программа для поиска  и отображения претензий на wmid.
Для работы программы нужен фаил .txt с списком(в столбик) wmid,
которые нужно проверять.

Автор: Logrus
email: logrus_ak@ukr.net
Версия 0.8 r23
"""
import urllib.request
import sys
import time
import os
from timeit import Timer

__version__='0.8'


clock=Timer()
number=0
def opening():
    """Функция открывает фаил и берет из него список wmid"""
    try:
        r=open(os.getcwd()+'\wmid.txt')
        k=r.read()
        c=list(k.split('\n'))
        r.close()
        return c
    except IOError:
        print('\n\t!!!ОШИБКА  - Не обнаружен фаил wmid.txt.!!!\n')
        input()
        sys.exit()

def preten(wmid, site='http://arbitrage.webmoney.ru/asp/claims.asp?wmid='):
    """С сайта вебмани вычисляется количество претензий на wmid"""
    wm=str(wmid)
    ful_url=site+wm
    site=urllib.request.urlopen(ful_url)
    site_text=str(site.readall())
    find_site=site_text.count('/images/atst/red.gif')
    return find_site-1

def vivod():
    """функция выводит wmid, на котором есть претензии и их количество"""
    print('-----------------------------------------')
    print('Проверка wmid......')
    count=0
    timestart=clock.timer()
    for i in opening():
        if preten(i) <=0:pass
        else:
            print('WMID--',i,'|||',' Количество претензий =-',preten(i),'-=')
            count+=preten(i)
    if count is 0:print('Претензий не обнаружено')
    else:pass
    timeend=clock.timer()-timestart
    print('Проверка окончена')
    print('Выполнено за %s секунд' % int(timeend))
    print('-----------------------------------------\n\n\n\n')
    
def vivodall():
    """Функция выводит все wmid из списка и количество претензий на них"""
    print('-----------------------------------------')
    count=0
    print('Проверка wmid......')
    timestart=clock.timer()
    for i in opening():
        if preten(i) <0:pass
        else:
            print('WMID--',i,'|||',' Количество претензий =-',preten(i),'-=')
            count+=preten(i)
    if count is 0:print('Претензий не обнаружено')
    else:pass
    timeend=clock.timer()-timestart
    print('Проверка окончена')
    print('Выполнено за %s секунд' % int(timeend))
    print('-----------------------------------------\n\n\n')
    
def timer(x):
    """ Запуск функции vivod() - по времени( в минутах )"""
    while True:
        try:
            global number
            number+=1
            print(time.ctime(),'--> ',number)
            vivod()
            time.sleep(x*60)
        except KeyboardInterrupt:
            print('Выполнение команды прервано')
            main()
            
def main():
            while True:
                b=input('Введите команду:\n1 - Отобразить претензии\n2 - Отобразить все wmid\n3 - Запуск скрипта по времени\n4 - Выход\n')
                if b =='1':
                    vivod() 
                elif b =='2':
                    vivodall()
                elif b =='3':
                    try:
                        x=int(input('Введите время ожидания скрипта перед перезапуском\n'))
                        timer(x)
                    except ValueError:
                        print('\n\t!!!Ошибка - Нужно указать целое число!!!\n')
                        main()
                elif b =='4':
                    sys.exit(0)
                else: print('Неверная команда\n--------------------------------\n\n')
                
if __name__=='__main__':
    print('Программа для поиска  и отображения претензий на wmid.\nДля работы программы нужен фаил .txt с списком(в столбик) wmid,\nкоторые нужно проверять.\nАвтор: Logrus\nemail: logrus_ak@ukr.net\nВерсия 0.8 r23\n')
    try:
        main()
    except KeyboardInterrupt:
        print('Выполнение команды прервано')
        main()